Using Reflection to Support Type-Safe Evolution in Persistent Systems

نویسندگان

  • G. N. C. Kirby
  • R. C. H. Connor
  • R. Morrison
  • D. Stemple
چکیده

Reflection has been used to address many different problem areas, and the term reflection has itself been used to describe several distinct processes. This paper identifies three simple operations, generation, raising and dynamic rebinding, which may be composed to yield several varieties of reflection. These can be used to allow a self-contained programming system to evolve, through the incorporation of new behaviour into either the application programs or the interpreter which controls their execution. Reflection is a powerful mechanism and potentially dangerous. Used in the context of persistent programming systems, safety is an important consideration: the integrity of large amounts of data may be at stake. This has led to the use of type checking in conjunction with reflection in such systems to provide some guarantees of safety. The paper describes the nature of reflection in persistent systems and identifies some example applications.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reflection and hyper-programming in persistent programming systems

In an orthogonally persistent programming system, data is treated in a manner independent of its persistence. This gives simpler semantics, allows the programmer to ignore details of long-term data storage and enables type checking protection mechanisms to operate over the entire lifetime of the data. The ultimate goal of persistent programming language research is to reduce the costs of produc...

متن کامل

Can Java Persist?

This paper briefly and selectively reviews the experience gained in designing and implementing the orthogonally persistent programming languages PS-algol and Napier88. A major design issue is how much is built into the support system and how much is built on top of the language itself. The PS-algol and Napier88 systems provide at the system or language level: a persistent store with root(s), re...

متن کامل

Persistent Programming with Strongly Typed Linguistic Reflection

The technique of linguistic reflection is of particular interest in persistent systems because it can allow longlived data and programs to evolve in a type-safe manner. Existing reflective languages are hard to use because programs contain a mixture of several different kinds of code, with respect to their role in reflection. In some systems this problem is compounded by the presence of a high ...

متن کامل

Mechanisms for controlling evolution in persistent object systems

Persistent programming is concerned with the creation and manipulation of data with arbitrary lifetimes. A requirement of such systems is that the data (including programs) must be capable of evolving and that the evolution should be within the control of the application's programmer. This paper discusses some recent developments in persistent programming that enable controlled evolution. The a...

متن کامل

Evolving Persistent Applications on Commercial Platforms

This paper draws on the experience gained in designing and implementing the orthogonally persistent programming languages PS-algol and Napier88. They provide, amongst other facilities and within a strongly typed environment, the underlying mechanisms for programming the evolution of persistent application systems. The essence of the paper is to suggest how such provision may be taken from these...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996